package com.pig4cloud.pigx.strategy.mapstruct;

import com.pig4cloud.pigx.strategy.dto.StrategyGroupContractAddDTO;
import com.pig4cloud.pigx.strategy.dto.StrategyGroupContractEditDTO;
import com.pig4cloud.pigx.strategy.entity.StrategyGroupContract;
import com.pig4cloud.pigx.strategy.vo.StrategyGroupContractAppVO;
import com.pig4cloud.pigx.strategy.vo.StrategyGroupContractOptionVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * StrategyGroupContractStruct
 *
 * @since 2022/11/24 11:37
 */
@Mapper
public interface StrategyGroupContractStruct {
	StrategyGroupContractStruct INSTANCE = Mappers.getMapper(StrategyGroupContractStruct.class);

	/**
	 * addDTO -> entity
	 *
	 * @param dto dto
	 * @return {@link StrategyGroupContract}
	 * @since 2022/2/8
	 */
	StrategyGroupContract addDTO2entity(StrategyGroupContractAddDTO dto);

	/**
	 * editDTO -> entity
	 *
	 * @param dto dto
	 * @return {@link StrategyGroupContract}
	 * @since 2022/2/8
	 */
	StrategyGroupContract editDTO2entity(StrategyGroupContractEditDTO dto);

	/**
	 * list -> optionVOList
	 *
	 * @param list list
	 * @return {@link List< StrategyGroupContractOptionVO>}
	 * @since 2022/2/8
	 */
	List<StrategyGroupContractOptionVO> list2OptionVOList(List<StrategyGroupContract> list);

	/**
	 * list -> appVOList
	 *
	 * @param list list
	 * @return {@link List< StrategyGroupContractAppVO>}
	 * @since 2022/2/8
	 */
	List<StrategyGroupContractAppVO> list2AppVOList(List<StrategyGroupContract> list);
}
